package com.qf.exception;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

import java.util.HashMap;
import java.util.Map;

/**
 * @DESCRIPTION: 全局异常处理器，会拦截所有 @Controller 注解的类
 * @USER: Administrator
 * @DATE: 2025/9/2 下午8:52
 * @VERSION: 1.0.0
 */
@RestControllerAdvice
public class GlobalExceptionHandler {

    /**
     * 处理所有 Exception 类型的异常，返回统一的错误信息
     * @param e
     * @return
     */
    @ExceptionHandler(Exception.class)
    public Map<String, Object> handleException(Exception e) {
        System.out.println("全局异常处理：捕获到 Exception 类型的异常");
        Map<String, Object> result = new HashMap<>();
        result.put("success", false);
        result.put("message", "服务器内部错误：" + e.getMessage());
        // 生产环境建议删除堆栈信息，避免泄露敏感信息
        result.put("stackTrace", e.getStackTrace());
        return result;
    }
}
